<?
require_once('./application/classes/item/nieuws.class.php');

class nieuwsModel extends db implements db_interface{

private static $instance;

public function __construct($iDb){
	
		parent::__construct($iDb);
	
	}
	
public static function getInstance($iDb){
	
		if(self::$instance == NULL){
			self::$instance = new self($iDb);
		}
		
		return self::$instance;
	
	
	}
	
	
	public function getNieuwsId(item_nieuws $nieuws)
	{
		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,n.nieuws_bericht,g.geb_naam, g.geb_id from item i join nieuws n on(i.item_id = n.nieuws_id)join gebruikers g on(i.item_geb_id = g.geb_id) where i.item_id = ? and i.item_deleted = 1;');
		
		$bindValue = $nieuws -> id;
		
		$query -> bind_param('i', $bindValue);
		$query -> execute();
		
		$query -> bind_result($id,$date,$title,$nieuw,$naam,$geb_id); 
		
		
		
		$query -> fetch();
		
			
			$nieuws -> id = $id;
			$nieuws -> title = $title;
			$nieuws -> geb_naam = $naam;
			$nieuws -> nieuws_text = $nieuw;
			$nieuws -> geb_id = $geb_id;
			$nieuws -> datum = $date;
			
			
		
		
		
		
		
	}
	public function getLimitedNieuws($limit){
	
		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,n.nieuws_bericht,g.geb_naam, g.geb_id from item i join nieuws n on(i.item_id = n.nieuws_id)join gebruikers g on(i.item_geb_id = g.geb_id) where i.item_deleted = 1 order by i.item_id desc limit ? ;');
		
		$bindValue = $limit;
		
		$query -> bind_param('i', $bindValue);
		$query -> execute();
		
		$query -> bind_result($id,$date,$title,$nieuw,$naam,$geb_id); 
		
		$returnArray = array();
		
		while ($query -> fetch())
		{
			$nieuws = new item_nieuws($this -> db);
			$nieuws -> id = $id;
			$nieuws -> title = $title;
			$nieuws -> geb_naam = $naam;
			$nieuws -> nieuws_text = $nieuw;
			$nieuws -> geb_id = $geb_id;
			$nieuws -> datum = $date;
			$returnArray[] = $nieuws;
			
		}
		
		return $returnArray;
	
	
	}
	
	public function addBericht(item_nieuws $nieuws){
		$query = $this -> db -> prepare("CALL nieuwsAdd(?, ?, ?,?)");
		$bindingvars=array($nieuws -> nieuws_text , $nieuws -> title , $nieuws -> geb_id , 'nieuws');
		$this -> bindVars($query,$bindingvars);
		$query -> execute();
		
	}
	public function delBericht(item_nieuws $nieuws)
	{
		$query = $this -> db -> prepare('call itemDel(?);');
		$bindValue = $nieuws -> id;
		$query -> bind_param('i', $bindValue);
		$query -> execute();
	}
	public function updBericht(item_nieuws $nieuws)
	{
		$query = $this -> db -> prepare('call nieuwsUpd(?,?,?);');
		$bindingVars = array($nieuws -> title , $nieuws -> nieuws_text , $nieuws -> id);
		$this -> bindVars($query,$bindingVars);
		$query -> execute();
	}
	public function getNieuws($start, $end)
	{
		$query = $this -> db -> prepare('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,n.nieuws_bericht,g.geb_naam, g.geb_id from item i join nieuws n on(i.item_id = n.nieuws_id)join gebruikers g on(i.item_geb_id = g.geb_id) where i.item_deleted = 1 order by i.item_id desc LIMIT ?, ?;');
		
	
		$query -> bind_param('ii', $start, $end);
		
		$query -> execute();
		
		$query -> bind_result($id, $date, $title, $nieuws_bericht, $geb_naam, $geb_id);
		
		$returnArray = array();
		
		
		while ($query -> fetch())
		{
			$nieuws = new item_nieuws($this -> db);
			$nieuws -> id = $id;
			$nieuws -> title = $title;
			$nieuws -> geb_naam = $geb_naam;
			$nieuws -> nieuws_text = $nieuws_bericht;
			$nieuws -> geb_id = $geb_id;
			$nieuws -> datum = $date;
			$returnArray[]= $nieuws;
		}
		return $returnArray;
	}
	public function getNieuwsBeheerder()
	{
		$query = $this -> db -> query('SELECT i.item_id,DATE_FORMAT(i.item_datum, "%H:%i - %d/%m/%y") as date,i.item_title,n.nieuws_bericht,g.geb_naam, g.geb_id from item i join nieuws n on(i.item_id = n.nieuws_id)join gebruikers g on(i.item_geb_id = g.geb_id) where i.item_deleted = 1 order by i.item_id desc;');
		
	
		
		$returnArray = array();
		
		
		while ($res = $query -> fetch_assoc())
		{
			$nieuws = new item_nieuws($this -> db);
			$nieuws -> id = $res['item_id'];
			$nieuws -> title = $res['item_title'];
			$nieuws -> geb_naam = $res['geb_naam'];
			$nieuws -> nieuws_text = $res['nieuws_bericht'];
			$nieuws -> geb_id = $res['geb_id'];
			$nieuws -> datum = $res['date'];
			$returnArray[]= $nieuws;
		}
		return $returnArray;
		
		
		
		
	}
	
	
	public function getAantalBerichten(){
		
		$query = $this -> db -> query("SELECT COUNT(*) as aantal FROM item i WHERE i.item_type = 'nieuws' AND i.item_deleted = 1");
		
		
		
		
		$res = $query -> fetch_assoc();
		
		return $res['aantal'];
	
	}
		
		
}



?>